xend: Fix name uniqueness check (revert 15168:a717cb2fac90).
authorKeir Fraser <keir@xensource.com>
Thu, 27 Sep 2007 17:08:11 +0000 (18:08 +0100)
committerKeir Fraser <keir@xensource.com>
Thu, 27 Sep 2007 17:08:11 +0000 (18:08 +0100)
Changeset 15168:a717cb2fac90 altered check_name() in XendDomainInfo so
that it compares domain IDs instead of UUIDs. This breaks a number of
things

 - You can no longer use 'xm new' to define a persistent config file for
   a running guest. This breaks the key OS provisioning scenario where
   you boot a kenrel+initrd for the installer, and at the same time
   define a permanent config with pygrub.

 - It lets you define multiple inactive guests with different UUIDs, but
   the same name because all inactive guests have a domid of None. So
   you can now end up with multiple guests with same name, which is
   contrary to the goal implied by the patch which was name uniqueness.

It is unclear from the original commit logs just what scenario it was
trying to protect against, but the original checking of uniqueness
based on UUID was correct & is what was used in previous releases XenD.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
tools/python/xen/xend/XendDomainInfo.py

index 73ae50bffbf08edaed5d950c4a6412bc81b3de47..6de4b2ff54a3b9dbd26347fe0631238164a39cf1 100644 (file)
@@ -2184,7 +2184,7 @@ class XendDomainInfo:
             raise VmError('Invalid VM Name')
 
         dom =  XendDomain.instance().domain_lookup_nr(name)
-        if dom and dom.domid and dom.domid != self.domid:
+        if dom and dom.info['uuid'] != self.info['uuid']:
             raise VmError("VM name '%s' already exists%s" %
                           (name,
                            dom.domid is not None and